package com.api.common.util;

import cn.hutool.core.convert.Convert;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 版本号处理工具类
 */
public class VersionUtil {

    /**
     * 比较两个版本号的大小
     * ver1<ver2返回-1
     * ver1=ver2返回0
     * ver1>ver2返回1
     * @param ver1
     * @param ver2
     * @return
     */
    public static int compare(String ver1, String ver2) {
        Integer numVersion1 = getNumber(ver1);
        Integer numVersion2 = getNumber(ver2);
        if(numVersion1 < numVersion2) {
            return -1;
        } else if(numVersion1 == numVersion2) {
            return 0;
        } else if(numVersion1 > numVersion2) {
            return 1;
        }
        return 0;
    }

    /**
     * 提取字符串中的数字
     * @param s
     * @return
     */
    public static Integer getNumber(String s) {
        String regEx="[^0-9]";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(s);
        String num = m.replaceAll("").trim();
        return Convert.toInt(num, 0);
    }

    public static void main(String[] args) {
        System.out.println(getNumber("ver_32,3jk23.21.1.1"));
        System.out.println(compare("ver.123.321", "ver.22.1.22.1"));
        System.out.println(compare("ver.221.221", "ver.22.1.22.1"));
        System.out.println(compare("ver.323.321", "ver.22.1.22.1"));
    }
}
